A computer network, often simply referred to as a network, is a group of interconnected computers and devices that facilitates communication among users and allows users to share resources. Adapters, switches, and other devices are typically used during network communication for reading and writing data at mass storage devices.
Computing devices (or systems) use mass storage devices to store data. Data centers are commonly used to store large amounts of data for computing devices. Different storage options are available for computing devices to store data and retrieve data. For example, options include direct-attached storage (DAS), network-attached storage (NAS), and storage area networks (SANs).
A DAS system typically includes a plurality of storage drives that are directly attached to a computing device (for example, a server) and is accessible via a host bus adapter (HBA). Common protocols used for DAS storage devices are SCSI (Small Computer Systems Interface), ATA (AT attachment), SATA (Serial ATA), SAS (Serial Attached SCSI) and others.
NAS is a file level storage that provides access to a plurality of computing devices. NAS typically uses network file sharing protocols, for example, NFS (Networked File System), CIFS (Common Internet File System), and others for storing and managing data at storage devices.
A SAN is a dedicated network that provides access to consolidated, block level data storage. SANs are primarily used to make storage devices, such as disk arrays, tape libraries, and others, accessible to servers so that the devices appear like locally attached devices to an operating system of a computing device. A SAN typically has its own network of storage devices that are generally not accessible through the local area network by other devices. SANs often utilize a Fibre Channel fabric topology, an infrastructure specially designed to handle storage communications. SANs may also use iSCSI (Internet Small Computer System Interface, i.e. mapping SCSI over TCP/IP (Transmission Control Protocol/Internet Protocol), Fibre Channel over Ethernet (FCoE), FCP (Fibre Channel over SCSI), Hyper SCSI (i.e. SCSI over Ethernet) and other protocols for storing and accessing data at storage devices.
Cloud-based storage may operate over a converged network that combines one or more storage area networks with one or more general-purpose computer networks.
Current interfaces for storage systems, such as iSCSI, Fibre Channel, or iSER (iSCSI Extensions for RDMA (Remote Direct Memory Access)) typically specify parameters for each connection as it is established. These interfaces support operations such as connect, login, write, read, set QoS (Quality of Service), or create storage volumes. These interfaces are typically implemented as APIs (Application Programming Interfaces) or PCI (Peripheral Component Interconnect) mailbox registers, in drivers or firmware that in turn configure lower level drivers or ASICs (Application Specific Integrated Circuits) to send and receive network packets and perform a given operation.
Traditional storage interfaces operate on a connection-by-connection basis and have limited ability to affect the operation of the network as a whole. When a new feature is needed such as network security, application software is modified and re-tested which generally requires reestablishing all connections with modified settings. This is undesirable, especially in a cloud based environment, where multiple tenants/clients access storage via networks. In the cloud environment, a cloud controller needs to have an efficient mechanism for managing varying bandwidth/QOS for different tenants and tenant types. Traditional storage/network architecture does not provide this efficient mechanism. Continuous efforts are being made to improve networking systems to provide greater control and flexibility.